﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//
//int main()
//{
//	printf("%s\n", __FILE__);
//	printf("%s\n", __DATE__);
//	printf("%s\n", __TIME__);
//	printf("%d\n", __LINE__);
//	return 0;
//}

//#define MAX 1000
//#define reg register //为 register这个关键字，创建⼀个简短的名字 
//#define do_forever for(;;) //⽤更形象的符号来替换⼀种实现 
//#define CASE break;case //在写case语句的时候⾃动把break写上。 
//// 如果定义的stuff过⻓，可以分成⼏⾏写，除了最后⼀⾏外，每⾏的后⾯都加⼀个反斜(续⾏符)。
//#define DEBUG_PRINT printf("file:%s\tline:%d\t \
//                           date:%s\ttime:%s\n" ,\
//                            __FILE__,__LINE__ , \
//                              __DATE__,__TIME__ ) 

////实现一个宏：计算一个数的平方
//#define SQUARE(x) x*x
//int main()
//{
//	int a = 5;
//	int ret = SQUARE(a);
//	printf("%d\n", ret);
//	return 0;
//}

//写一个宏，求2个数的较大值
//#define MAX(X,Y) ((X)>(Y)?(X):(Y))
//#define M 10
//int main()
//{
//	int a = 3;
//	int b = 5;
//	int m = MAX(a, MAX(M, 3));
//	printf("M = %d\n", m);
//	printf("a = %d\n", a);
//	printf("b = %d\n", b);
//	return 0;
//}

//#define Malloc(n,type) (type*)malloc(n*sizeof(type))
//int main()
//{
//	int* p = Malloc(10, int);
//
//	return 0;
//}

//#define Print(n,format) printf("the value of "#n" is "format"\n",n);
//
//int main()
//{
//	int a = 1;
//	Print(a, "%d");
//
//	float f = 5.6f;
//	Print(f, "%f");
//
//	return 0;
//}

//int int_max(int x, int y)
//{
//	return x > y ? x : y;
//}
//
//float float_max(float x, float y)
//{
//	return x > y ? x : y;
//}

//#define GENERIC_MAX(type) \
//        type type##_max(type x,type y)\
//       {         \
//           return x>y?x:y;\
//       }
//
////定义函数
//GENERIC_MAX(int);//int_max
//GENERIC_MAX(float);//float_max
//
//
//int main()
//{
//    int r1 = int_max(3, 5);
//    printf("%d\n", r1);
//
//    float r2 = float_max(3.1f, 4.5f);
//    printf("%f\n", r2);
//    return 0;
//}